@Haggard
2年前 提问
1个回答

通过Web应用防御SQL注入的手段有哪些

Andrew
2年前

通过Web应用防御SQL注入的手段有以下这些:

  • 添加数据记录:如果Web应用程序需要从表单中获取相关数据,然后往后台数据库的相关数据表中插入一条新的记录,程序员可以不直接使用INSERT语句,而通过先打开记录集对象,然后往记录集对象中先添加一条空记录,再将具体的数据内容写入到记录字段中,最后直接将记录集更新到数据库中。这样就可以有效避免SQL攻击,达到防御的目的。

  • 修改数据:如果Web应用程序需要从表单中获取相关数据,然后修改后台数据库的相关数据表中的数据记录,程序员也可以不直接使用UPDATE语句,而通过先构造一条查询语句,打开记录集对象,然后找到要修改的数据记录,再将具体的数据内容写入到记录字段中,最后将修改后的记录集更新到数据库中,这样就可以有效避免SQL攻击,达到防御的目的。

  • 删除数据:如果Web应用程序需要删除数据记录,程序员也可以不直接使用DELETE语句,而通过先构造一条查询语句,打开记录集对象,然后找到要删除的数据记录,将此记录删除,再将删除记录后的记录集更新到数据库中。删除操作是使用rs.delete语句完成的。这样就可以有效避免SQL攻击,达到防御的目的。

  • 利用视图修改和删除:操作视图与操作表有许多功能是相同的,例如查询数据。如果一个视图是多表关联生成的,它比直接运行多表关联速度要快,因为视图是提前编译好的,SQL语句的执行首先需要编译。与表格不同,视图的插入、修改和删除是有限制的,这种限制可以在一定程度上保护数据被插入、修改或删除。

  • 利用存储过程进行数据的修改和删除:利用服务器端脚本修改数据的时候,可以利用记录集对象的一些属性,例如记录数(rs.recordcount)来判断影响的行数,如果不为0可以进行修改或删除。另外也可以利用SQL语句通过存储过程对修改或删除操作进行重新封装,并利用SQL语句对参数或影响的行数进行判断,在存储过程中也可以同时对参数进行过滤等处理。